package servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bdelegate.BdelegateWeb;
import beans.AperturaMesaBean;
import beans.ComandaBean;
import beans.ItemCartaBean;
import beans.MesaBean;
import beans.MozoBean;
import beans.PedidoBean;
import beans.SectorBean;
import beans.SucursalBean;

public class Ajax extends HttpServlet {

	private static final long serialVersionUID = 1L;
	private SucursalBean sucursal = new SucursalBean();
	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//obtengo los datos actuales de la sucursal.
		BdelegateWeb bd = BdelegateWeb.getInstancia();
		
		String accion = request.getParameter("accion");
		//String param = request.getParameter("param");
		
		//Listar Mozos por Sector
		if("listarMozosPorSector".equals(accion)) {
			SucursalBean sucursal = bd.obtenerDatosSucursal(Integer.parseInt(request.getParameter("idSucursal")));
//			Integer idSector = Integer.parseInt(request.getParameter("idSector"));
			//obtener los mozos.
			String output = "<select id='mozoId' name='mozoId' class='form-control'>";
//			List<MozoBean> mozos = MetodosServlets.getInstancia().buscarMozosPorSector(sucursal, idSector);
			List<MozoBean> mozos = MetodosServlets.getInstancia().buscarMozosPorSucursal(sucursal);
			for (MozoBean mozoBean : mozos) {
				output = output + "<option value='" 
						+ mozoBean.getLegajo() + "'>" + mozoBean.getNombre() 
						+ " " + mozoBean.getApellido() + "</option>";
			}
			output = output + "</select><br />";
			
			//mando la lista al jsp
		    response.setContentType("text/html");
		    response.setCharacterEncoding("UTF-8");
		    response.getWriter().write(output);
		    
		}
		//Listar Aperturas de Mesa por Mozo
		else if("listarAperturasMesaMozo".equals(accion)){
			SucursalBean sucursal = bd.obtenerDatosSucursal(Integer.parseInt(request.getParameter("idSucursal")));
			Integer mozoId = Integer.parseInt(request.getParameter("mozoId"));
			
			String output = "<select id='aperturaMesaId' name='aperturaMesaId' class='form-control'>" +
								"<option value=''>Seleccione</option>";
			
			//obtener la lista de apertura de mesas activas segun el mozoId
			List<AperturaMesaBean> apMesasMozo = MetodosServlets.getInstancia().buscarAperturasMesaPorMozo(sucursal, mozoId);
			for (AperturaMesaBean aperturaMesa : apMesasMozo) {
				
				List<MesaBean> mesas = aperturaMesa.getMesas();
 				String mesasStr = "";
 				
				for (MesaBean mesa : mesas) {
					mesasStr = mesasStr + mesa.getIdMesa() + ", ";
				}
				
				output = output + "<option value='" +
						 aperturaMesa.getIdAperturaMesa() +
						 "'>A.Mesa "+aperturaMesa.getMozo().getNombre() +
						 " " + aperturaMesa.getMozo().getApellido() + 
						 " - Mesas: "+mesasStr+ "</option>";
			}	
			output = output + "</select><br />";
			
			response.setContentType("text/html");  
		    response.setCharacterEncoding("UTF-8");
		    response.getWriter().write(output);
		}else if("listarMozosPorSucursal".equals(accion)) {
			SucursalBean sucursal = bd.obtenerDatosSucursal(Integer.parseInt(request.getParameter("idSucursal")));
			//Integer idSector = Integer.parseInt(request.getParameter("idSector"));
			//obtener los mozos.
			String output = "<select id='mozoId' name='mozoId' class='form-control'>";
			List<MozoBean> mozos = MetodosServlets.getInstancia().buscarMozosPorSucursal(sucursal);
			
			for (MozoBean mozoBean : mozos) {
				output = output + "<option value='" 
						+ mozoBean.getLegajo() + "'>" + mozoBean.getNombre() 
						+ " " + mozoBean.getApellido() + "</option>";
			}
			output = output + "</select><br />";
			
			//mando la lista al jsp
		    response.setContentType("text/html");
		    response.setCharacterEncoding("UTF-8");
		    response.getWriter().write(output);
		    
		} else if("listarAperturasMesaPorMozoACerrar".equals(accion)) {
			SucursalBean sucursal = bd.obtenerDatosSucursal(Integer.parseInt(request.getParameter("idSucursal")));
			Integer mozoId = Integer.parseInt(request.getParameter("mozoId"));
			
			String output = "<select id='aperturaMesaId' name='aperturaMesaId' class='form-control'>" +
								"<option value=''>Seleccione</option>";
			
			//obtener la lista de apertura de mesas activas segun el mozoId
			List<AperturaMesaBean> apMesasMozo = MetodosServlets.getInstancia().buscarAperturasMesaPorMozoACerrar(sucursal, mozoId);
			for (AperturaMesaBean aperturaMesa : apMesasMozo) {
				
				List<MesaBean> mesas = aperturaMesa.getMesas();
 				String mesasStr = "";
 				
				for (MesaBean mesa : mesas) {
					mesasStr = mesasStr + mesa.getIdMesa() + ", ";
				}
				
				output = output + "<option value='" +
						 aperturaMesa.getIdAperturaMesa() +
						 "'>A.Mesa "+aperturaMesa.getMozo().getNombre() +
						 " " + aperturaMesa.getMozo().getApellido() + 
						 " - Mesas: "+mesasStr+ "</option>";
			}	
			output = output + "</select><br />";
			
			response.setContentType("text/html");  
		    response.setCharacterEncoding("UTF-8");
		    response.getWriter().write(output);
		} else if("obtenerComandasARealizar".equals(accion)) {
			List<ComandaBean> comandas = bd.obtenerComandasPorArea(request.getParameter("area"));
			
			String output = "<table class='table table-striped table-bordered table-hover' id='tablaComandas'>" +
					"<thead><tr><th>#</th><th>Descripci&oacute;n</th><th>Estado</th><th>Seleccionar</th></tr></thead>" +
					"<tbody>";
			for (ComandaBean comanda : comandas) {
				output = output + "<tr class='success' id='itemPedidoRow_"+comanda.getId()+"'>" +
						"<td>"+ comanda.getId() +"</td>"+
						"<td>"+comanda.getItem().getPlato().getDescripcion()+"</td>"+
						"<td>"+comanda.getEstado()+"</td>"+
						"<td><input type='checkbox' class='comandas' id='comanda_"+comanda.getId()+"' name='comandasACerrar[]' value='"+comanda.getId()+"' /></td>"+
						"</td></tr>";	
			}
			output = output + "</tbody></table>";
			
			response.setContentType("text/html");  
		    response.setCharacterEncoding("UTF-8");
		    response.getWriter().write(output);
		} else if("procesarComandas".equals(accion)) {
			String[] comandasArray = request.getParameter("comandas").split(",");
			bd.liberarComandas(comandasArray);
		}
	}
}
